package com.atguigu.jxc.service;

import com.atguigu.jxc.domain.ServiceVO;
import com.atguigu.jxc.entity.Goods;

import java.util.List;
import java.util.Map;

public interface GoodsService {


    ServiceVO getCode();




    /**
     * 分页查询商品库存信息(默认首页)
     * @param page 当前页
     * @param rows 每页显示条数
     * @param codeOrName 商品编码或名称
     * @param goodsTypeId 商品类别ID
     * @return
     */
    Map<String, Object> listInventory(Integer page, Integer rows, String codeOrName, Integer goodsTypeId);

    //新增或修改商品信息
    Boolean save(Goods goods);

    //删除
    Boolean delete(Integer goodsId);

    //无库存商品列表展示（可以根据商品名称或编码查询）
    Map<String, Object> getNoInventoryQuantity(Integer page, Integer rows, String nameOrCode);

    //分页查询有库存商品信息
    Map<String, Object> getHasInventoryQuantity(Integer page, Integer rows, String nameOrCode);
    //添加库存、修改数量或成本价
    Boolean saveStock(Integer goodsId, Integer inventoryQuantity, double purchasingPrice);
    //删除库存（要判断商品状态 入库、有进货和销售单据的不能删除）
    Boolean deleteStock(Integer goodsId);

    //查询库存报警商品信息
    Map<String, Object> listAlarm();

}
